<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SSDP Help: D:/doxy/PublicAPI/ATGeometrySet/ATBsplineSurface.h 源文件</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">SSDP Help<span id="projectnumber">&#160;2.04.01</span>
   </div>
   <div id="projectbrief">仅供测试</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.3 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('../../',false,false,'search.php','搜索');
});
/* @license-end */
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../dir_52a01df1794e5beec01860bdd05aea48.html">PublicAPI</a></li><li class="navelem"><a class="el" href="../../dir_3ae1ea863de6943fe2c5c18439480f66.html">ATGeometrySet</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle"><div class="title">ATBsplineSurface.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span>BEGIN_ATEC_NAMESPACE</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="keyword">struct </span>BoundBox</div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span>{</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span>    <span class="keywordtype">double</span>      system[3][3];</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span>    <a class="code hl_struct" href="../../d5/d5b/struct_x_point3d.html">XPoint3d</a>    origin;</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>    <a class="code hl_struct" href="../../d5/d5b/struct_x_point3d.html">XPoint3d</a>    extent;</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span>};</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html">   15</a></span><span class="keyword">struct </span>ATGEOSET_EXPORT <a class="code hl_struct" href="../../da/d5d/struct_a_t_bspline_surface.html">ATBsplineSurface</a></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>{</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    int32_t             type;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    int32_t             rational;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    BsplineDisplay      display;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    BsplineParam        uParams;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    BsplineParam        vParams;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    <a class="code hl_struct" href="../../d5/d5b/struct_x_point3d.html">XPoint3d</a>            *poles;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    <span class="keywordtype">double</span>              *uKnots;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    <span class="keywordtype">double</span>              *vKnots;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    <span class="keywordtype">double</span>              *weights;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    int32_t             holeOrigin;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    int32_t             numBounds;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    BsurfBoundary       *boundaries;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a99fd57f4d22257d1b2ed3aedbb064d80">   36</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a99fd57f4d22257d1b2ed3aedbb064d80">CreatePtr</a>();</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a5a045616cc6a3c188640411ffba0ab6a">   47</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a5a045616cc6a3c188640411ffba0ab6a">EvaluatePoint</a>(XPoint3dR xyz, <span class="keywordtype">double</span> u, <span class="keywordtype">double</span> v) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#aff3b7e15cbeac71d0aef30f89dde300d">   60</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#aff3b7e15cbeac71d0aef30f89dde300d">EvaluatePoint</a>(XPoint3dR xyz, XVec3dR dPdU, XVec3dR dPdV, <span class="keywordtype">double</span> u, <span class="keywordtype">double</span> v) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a72639aec521bd1b203a5a247b4fad4c4">   71</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a72639aec521bd1b203a5a247b4fad4c4">ClosestPoint</a>(XPoint3dR surfacePoint, XPoint2dR surfaceUV, XPoint3dCR spacePoint) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#af39f98653eeb861467bfa929b67ec831">   81</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#af39f98653eeb861467bfa929b67ec831">CreateLinearSweep</a>(IBasicCurveCR primitive, XVec3dCR delta);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#aa11349e9d7c86c227a1bc4f19b28a063">   91</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#aa11349e9d7c86c227a1bc4f19b28a063">CreateLinearSweep</a>(ATBsplineCurveCR primitive, XVec3dCR delta);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#abea91b57f5be81d76d7451bf86b0fd6c">  102</a></span>    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#abea91b57f5be81d76d7451bf86b0fd6c">CreateLinearSweep</a>(xvector&lt;ATBsplineSurfacePtr&gt; &amp;surfaces, CurveSetCR baseCurves, XVec3dCR delta);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a64f56a2d7bda3243457d12cfa58a560d">  112</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a64f56a2d7bda3243457d12cfa58a560d">CreateRuled</a>(IBasicCurveCR curveA, IBasicCurveCR curveB);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a32318201431fea13f040def23e5b5560">  124</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a32318201431fea13f040def23e5b5560">CreateRotationalSweep</a>(IBasicCurveCR primitive,</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>        XPoint3dCR center, XVec3dCR axis, <span class="keywordtype">double</span> sweepRadians);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a2c7ac43a1336b59c273bb18a0551a928">  137</a></span>    <span class="keyword">static</span> ATBsplineSurfacePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a2c7ac43a1336b59c273bb18a0551a928">CreateRotationalSweep</a>(ATBsplineCurveCR primitive,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>        XPoint3dCR center, XVec3dCR axis, <span class="keywordtype">double</span> sweepRadians);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#ae26ccbc319deb5724d20d0e7cd638cb9">  151</a></span>    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#ae26ccbc319deb5724d20d0e7cd638cb9">CreateRotationalSweep</a>(xvector&lt;ATBsplineSurfacePtr&gt; &amp;surfaces, CurveSetCR baseCurves,</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>        XPoint3dCR center, XVec3dCR axis, <span class="keywordtype">double</span> sweepRadians);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a8147271025af4011280f969feee9e5bd">  161</a></span>    ATBsplineCurvePtr <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a8147271025af4011280f969feee9e5bd">GetIsoVCurve</a>(<span class="keywordtype">double</span> v) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="../../da/d5d/struct_a_t_bspline_surface.html#a86ab05073010e12114d9850e151df3e6">  173</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="../../da/d5d/struct_a_t_bspline_surface.html#a86ab05073010e12114d9850e151df3e6">ComputePrincipalAreaMoments</a>(</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>        <span class="keywordtype">double</span> &amp;area,</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>        XVec3dR centroid,</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>        XRotMatrixR axes,</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>        XVec3dR momentxyz</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>    ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>};</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span> </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span><span class="keyword">struct </span>RefCountedATBsplineSurface : <span class="keyword">public</span> <a class="code hl_struct" href="../../da/d5d/struct_a_t_bspline_surface.html">ATBsplineSurface</a>, RefCountedBase</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>{</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>    RefCountedATBsplineSurface();</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>    ~RefCountedATBsplineSurface();</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>};</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>END_ATEC_NAMESPACE</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span> </div>
<div class="ttc" id="astruct_a_t_bspline_surface_html"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html">ATBsplineSurface</a></div><div class="ttdoc">B样条曲面</div><div class="ttdef"><b>Definition:</b> ATBsplineSurface.h:16</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a2c7ac43a1336b59c273bb18a0551a928"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a2c7ac43a1336b59c273bb18a0551a928">ATBsplineSurface::CreateRotationalSweep</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreateRotationalSweep(ATBsplineCurveCR primitive, XPoint3dCR center, XVec3dCR axis, double sweepRadians)</div><div class="ttdoc">从曲线上创建旋转扫描</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a32318201431fea13f040def23e5b5560"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a32318201431fea13f040def23e5b5560">ATBsplineSurface::CreateRotationalSweep</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreateRotationalSweep(IBasicCurveCR primitive, XPoint3dCR center, XVec3dCR axis, double sweepRadians)</div><div class="ttdoc">从曲线上创建旋转扫描</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a5a045616cc6a3c188640411ffba0ab6a"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a5a045616cc6a3c188640411ffba0ab6a">ATBsplineSurface::EvaluatePoint</a></div><div class="ttdeci">void EvaluatePoint(XPoint3dR xyz, double u, double v) const</div><div class="ttdoc">计算输入u和v参数值的B样条曲面点</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a64f56a2d7bda3243457d12cfa58a560d"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a64f56a2d7bda3243457d12cfa58a560d">ATBsplineSurface::CreateRuled</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreateRuled(IBasicCurveCR curveA, IBasicCurveCR curveB)</div><div class="ttdoc">以线性扫描创建两条曲线之间的曲面</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a72639aec521bd1b203a5a247b4fad4c4"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a72639aec521bd1b203a5a247b4fad4c4">ATBsplineSurface::ClosestPoint</a></div><div class="ttdeci">void ClosestPoint(XPoint3dR surfacePoint, XPoint2dR surfaceUV, XPoint3dCR spacePoint) const</div><div class="ttdoc">找到曲面上最接近的点</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a8147271025af4011280f969feee9e5bd"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a8147271025af4011280f969feee9e5bd">ATBsplineSurface::GetIsoVCurve</a></div><div class="ttdeci">ATBsplineCurvePtr GetIsoVCurve(double v) const</div><div class="ttdoc">在v处得到未修剪u-方向曲线</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a86ab05073010e12114d9850e151df3e6"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a86ab05073010e12114d9850e151df3e6">ATBsplineSurface::ComputePrincipalAreaMoments</a></div><div class="ttdeci">bool ComputePrincipalAreaMoments(double &amp;area, XVec3dR centroid, XRotMatrixR axes, XVec3dR momentxyz) const</div><div class="ttdoc">将曲面视为壳，返回面积、质心、方向和主惯性矩</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_a99fd57f4d22257d1b2ed3aedbb064d80"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#a99fd57f4d22257d1b2ed3aedbb064d80">ATBsplineSurface::CreatePtr</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreatePtr()</div><div class="ttdoc">创建一个智能指针</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_aa11349e9d7c86c227a1bc4f19b28a063"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#aa11349e9d7c86c227a1bc4f19b28a063">ATBsplineSurface::CreateLinearSweep</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreateLinearSweep(ATBsplineCurveCR primitive, XVec3dCR delta)</div><div class="ttdoc">创建基于曲线的线性扫描</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_abea91b57f5be81d76d7451bf86b0fd6c"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#abea91b57f5be81d76d7451bf86b0fd6c">ATBsplineSurface::CreateLinearSweep</a></div><div class="ttdeci">static bool CreateLinearSweep(xvector&lt; ATBsplineSurfacePtr &gt; &amp;surfaces, CurveSetCR baseCurves, XVec3dCR delta)</div><div class="ttdoc">以线性扫描曲线创建B样条曲面</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_ae26ccbc319deb5724d20d0e7cd638cb9"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#ae26ccbc319deb5724d20d0e7cd638cb9">ATBsplineSurface::CreateRotationalSweep</a></div><div class="ttdeci">static bool CreateRotationalSweep(xvector&lt; ATBsplineSurfacePtr &gt; &amp;surfaces, CurveSetCR baseCurves, XPoint3dCR center, XVec3dCR axis, double sweepRadians)</div><div class="ttdoc">以旋转扫描曲线创建B样条曲面</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_af39f98653eeb861467bfa929b67ec831"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#af39f98653eeb861467bfa929b67ec831">ATBsplineSurface::CreateLinearSweep</a></div><div class="ttdeci">static ATBsplineSurfacePtr CreateLinearSweep(IBasicCurveCR primitive, XVec3dCR delta)</div><div class="ttdoc">创建基于曲线的线性扫描</div></div>
<div class="ttc" id="astruct_a_t_bspline_surface_html_aff3b7e15cbeac71d0aef30f89dde300d"><div class="ttname"><a href="../../da/d5d/struct_a_t_bspline_surface.html#aff3b7e15cbeac71d0aef30f89dde300d">ATBsplineSurface::EvaluatePoint</a></div><div class="ttdeci">void EvaluatePoint(XPoint3dR xyz, XVec3dR dPdU, XVec3dR dPdV, double u, double v) const</div><div class="ttdoc">计算输入u和v参数值的B样条曲面点及其偏导数</div></div>
<div class="ttc" id="astruct_x_point3d_html"><div class="ttname"><a href="../../d5/d5b/struct_x_point3d.html">XPoint3d</a></div><div class="ttdoc">3D空间点类</div><div class="ttdef"><b>Definition:</b> XPoint3d.h:12</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
